This invention relates to a message processing facility for transfer of message information from one computer process to another and, more particularly, to a message processing facility of the store and forward type where there is an element of time separation added to the transfer.
Store and forward message processing is one type of program-to-program data communication mechanism. There are, of course, other types of program-to-program communication mechanisms, and a brief description of the other types helps illustrate the properties of the store and forward type. A common form of data communications is a file. One program writes a file and another one reads it. The only coupling between the two programs is the name of the file. Synchronization between the two programs is not defined and usually is implemented by the developers of the programs by serializing the programs execution, that is, with a command or job control language. This type of data communications is of limited use in geographically distributed systems since, in many cases, a distributed file system is not supported.
Another type of communication mechanism is a virtual call. With this type mechanism, the two programs may execute anywhere in the network of the system, and both programs and a communications path must exist at the same time. Both programs must be willing to accept and/or respond to data in a real time manner. This virtual call mechanism may, of course, be used in geographically distributed systems.
The store and forward communications mechanism may also be used in distributed systems. The main difference between this mechanism and the virtual call mechanism is that the programs and communication path are decoupled. That is, they do not have to exist simultaneously. In addition to the space separation typical of the call mechanism, there is an element of time separation. As a result, store and forward permits a program to issue data transfer requests that are less time critical. Accordingly, store and forward can control those requests in a way that may decrease peak load on the transmission system and on the CPU resources thereby yielding a lower cost for the transfer service. The decoupling permits a simple interface for the programs and recovery from congestion and network failure is also less complicated. Store and forward is not appropriate for programs requiring real time interactions.
The Advanced Information Systems (AIS)/Net1000 is a shared switched network service for data communications users. It will permit the interconnection of a wide variety of multi-vendor terminals and computers. It will offer at least two types of message handling facilities. One type of message handling facility will permit the bidirectional transfer of information between two terminals and/or computers on a simultaneous basis. This first type of message handling facility has been previously labeled in the Advanced Information Systems as the standard call feature. See, for example, the article entitled "Service Concepts Underlying ACS," by Mark M. Rochkind, International Conference on Communications Conference Record, Vol. 3, Boston, MA, June 10-14, 1979, pp. 38.1.1-38.1.5.
A second type of message facility in the AIS system (previously called ACS for Advanced Communications Service) was labeled in that article as the standard message feature. In this message facility, the concept of time separation is added to the space separation typically present in the transfer of information. The messages generated at an originating location are first collected in some message storage area, and these messages are then transmitted to a destination node at which point they are again held for delivery to the destination or target station. There are several grades of service that are typically provided which have as a goal the transport of data across the network within seconds, minutes or hours, depending on the grade of service. In the system which was described in the above-identified article, the responsibility to establish the priority sequence used to accomplish the delivery of a message from the message arrival area in the destination node remained with the local terminal or computer at the destination target. It was, therefore, the responsibility of the destination target, be it terminal or computer, to at some time, retrieve its messages from the message arrival area.
Another message delivery option which was offered in that proposed system was that of delivery confirmation. This option provided the originator or speciified confirmation program with information about the fact that the message was delivered to the target station. One difficulty with this previously disclosed system is that the decision as to how and when the message will be delivered was the responsibility of the destination station. As suggested in the above-identified article, this could be done by automatic polling at a continuous or periodic basis or by scheduling the retrieval of the message to occur at some prescheduled time. In the case where the message is destined for a process that has not been activated for some other purpose, the messages that are delivered for that process could remain in the message arrival area for extended periods of time with no prospect of delivery and thus presenting a difficulty in terms of when confirmation should be sent.